home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / drivers / mikie.c < prev    next >
C/C++ Source or Header  |  2000-04-04  |  14KB  |  398 lines

  1. /***************************************************************************
  2.  
  3. Mikie memory map (preliminary)
  4.  
  5. driver by Allard Van Der Bas
  6.  
  7.  
  8. MAIN BOARD:
  9. 2800-288f Sprite RAM (288f, not 287f - quite unusual)
  10. 3800-3bff Color RAM
  11. 3c00-3fff Video RAM
  12. 4000-5fff ROM (?)
  13. 5ff0      Watchdog (?)
  14. 6000-ffff ROM
  15.  
  16.  
  17. ***************************************************************************/
  18.  
  19. #include "driver.h"
  20. #include "vidhrdw/generic.h"
  21. #include "cpu/m6809/m6809.h"
  22.  
  23.  
  24.  
  25. WRITE_HANDLER( mikie_palettebank_w );
  26. WRITE_HANDLER( mikie_flipscreen_w );
  27. void mikie_vh_convert_color_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
  28. void mikie_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
  29.  
  30.  
  31.  
  32. READ_HANDLER( mikie_sh_timer_r )
  33. {
  34.     int clock;
  35.  
  36. #define TIMER_RATE 512
  37.  
  38.     clock = cpu_gettotalcycles() / TIMER_RATE;
  39.  
  40.     return clock;
  41. }
  42.  
  43. WRITE_HANDLER( mikie_sh_irqtrigger_w )
  44. {
  45.     static int last;
  46.  
  47.  
  48.     if (last == 0 && data == 1)
  49.     {
  50.         /* setting bit 0 low then high triggers IRQ on the sound CPU */
  51.         cpu_cause_interrupt(1,0xff);
  52.     }
  53.  
  54.     last = data;
  55. }
  56.  
  57.  
  58.  
  59. static struct MemoryReadAddress readmem[] =
  60. {
  61.     { 0x0000, 0x00ff, MRA_RAM },    /* ???? */
  62.     { 0x2400, 0x2400, input_port_0_r },    /* coins + selftest */
  63.     { 0x2401, 0x2401, input_port_1_r },    /* player 1 controls */
  64.     { 0x2402, 0x2402, input_port_2_r },    /* player 2 controls */
  65.     { 0x2403, 0x2403, input_port_3_r },    /* flip */
  66.     { 0x2500, 0x2500, input_port_4_r },    /* Dipswitch settings */
  67.     { 0x2501, 0x2501, input_port_5_r },    /* Dipswitch settings */
  68.     { 0x2800, 0x2fff, MRA_RAM },    /* RAM BANK 2 */
  69.     { 0x3000, 0x37ff, MRA_RAM },    /* RAM BANK 3 */
  70.     { 0x3800, 0x3fff, MRA_RAM },    /* video RAM */
  71.     { 0x4000, 0x5fff, MRA_ROM },    /* Machine checks for extra rom */
  72.     { 0x6000, 0xffff, MRA_ROM },
  73.     { -1 }  /* end of table */
  74. };
  75.  
  76. static struct MemoryWriteAddress writemem[] =
  77. {
  78.     { 0x2000, 0x2001, coin_counter_w },
  79.     { 0x2002, 0x2002, mikie_sh_irqtrigger_w },
  80.     { 0x2006, 0x2006, mikie_flipscreen_w },
  81.     { 0x2007, 0x2007, interrupt_enable_w },
  82.     { 0x2100, 0x2100, watchdog_reset_w },
  83.     { 0x2200, 0x2200, mikie_palettebank_w },
  84.     { 0x2400, 0x2400, soundlatch_w },
  85.     { 0x2800, 0x288f, MWA_RAM, &spriteram, &spriteram_size },
  86.     { 0x2890, 0x37ff, MWA_RAM },
  87.     { 0x3800, 0x3bff, colorram_w, &colorram },
  88.     { 0x3c00, 0x3fff, videoram_w, &videoram, &videoram_size },
  89.     { 0x6000, 0xffff, MWA_ROM },
  90.     { -1 }  /* end of table */
  91. };
  92.  
  93. static struct MemoryReadAddress sound_readmem[] =
  94. {
  95.     { 0x0000, 0x3fff, MRA_ROM },
  96.     { 0x4000, 0x43ff, MRA_RAM },
  97.     { 0x8003, 0x8003, soundlatch_r },
  98.     { 0x8005, 0x8005, mikie_sh_timer_r },
  99.     { -1 }  /* end of table */
  100. };
  101.  
  102. static struct MemoryWriteAddress sound_writemem[] =
  103. {
  104.     { 0x0000, 0x3fff, MWA_ROM },
  105.     { 0x4000, 0x43ff, MWA_RAM },
  106.     { 0x8000, 0x8000, MWA_NOP },    /* sound command latch */
  107.     { 0x8001, 0x8001, MWA_NOP },    /* ??? */
  108.     { 0x8002, 0x8002, SN76496_0_w },    /* trigger read of latch */
  109.     { 0x8004, 0x8004, SN76496_1_w },    /* trigger read of latch */
  110.     { 0x8079, 0x8079, MWA_NOP },    /* ??? */
  111. //    { 0xa003, 0xa003, MWA_RAM },
  112.     { -1 }
  113. };
  114.  
  115.  
  116.  
  117. INPUT_PORTS_START( mikie )
  118.     PORT_START    /* IN0 */
  119.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
  120.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
  121.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN3 )
  122.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START1 )
  123.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START2 )
  124.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
  125.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  126.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  127.  
  128.     PORT_START    /* IN1 */
  129.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY )
  130.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY )
  131.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY )
  132.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY )
  133.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
  134.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
  135.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  136.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  137.  
  138.     PORT_START    /* IN2 */
  139.     PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT | IPF_4WAY | IPF_COCKTAIL )
  140.     PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT | IPF_4WAY | IPF_COCKTAIL )
  141.     PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_UP | IPF_4WAY | IPF_COCKTAIL )
  142.     PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN | IPF_4WAY | IPF_COCKTAIL )
  143.     PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 | IPF_COCKTAIL )
  144.     PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 | IPF_COCKTAIL )
  145.     PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
  146.     PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
  147.  
  148.     PORT_START
  149.     PORT_DIPNAME( 0x01, 0x00, DEF_STR( Flip_Screen ) )
  150.     PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
  151.     PORT_DIPSETTING(    0x01, DEF_STR( On ) )
  152.     PORT_DIPNAME( 0x02, 0x00, "Controls" )
  153.     PORT_DIPSETTING(    0x00, "Single" )
  154.     PORT_DIPSETTING(    0x02, "Dual" )
  155.     PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNKNOWN )
  156.  
  157.     PORT_START    /* DSW0 */
  158.     PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
  159.     PORT_DIPSETTING(    0x02, DEF_STR( 4C_1C ) )
  160.     PORT_DIPSETTING(    0x05, DEF_STR( 3C_1C ) )
  161.     PORT_DIPSETTING(    0x08, DEF_STR( 2C_1C ) )
  162.     PORT_DIPSETTING(    0x04, DEF_STR( 3C_2C ) )
  163.     PORT_DIPSETTING(    0x01, DEF_STR( 4C_3C ) )
  164.     PORT_DIPSETTING(    0x0f, DEF_STR( 1C_1C ) )
  165.     PORT_DIPSETTING(    0x03, DEF_STR( 3C_4C ) )
  166.     PORT_DIPSETTING(    0x07, DEF_STR( 2C_3C ) )
  167.     PORT_DIPSETTING(    0x0e, DEF_STR( 1C_2C ) )
  168.     PORT_DIPSETTING(    0x06, DEF_STR( 2C_5C ) )
  169.     PORT_DIPSETTING(    0x0d, DEF_STR( 1C_3C ) )
  170.     PORT_DIPSETTING(    0x0c, DEF_STR( 1C_4C ) )
  171.     PORT_DIPSETTING(    0x0b, DEF_STR( 1C_5C ) )
  172.     PORT_DIPSETTING(    0x0a, DEF_STR( 1C_6C ) )
  173.     PORT_DIPSETTING(    0x09, DEF_STR( 1C_7C ) )
  174.     PORT_DIPSETTING(    0x00, DEF_STR( Free_Play ) )
  175.     PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )
  176.     PORT_DIPSETTING(    0x20, DEF_STR( 4C_1C ) )
  177.     PORT_DIPSETTING(    0x50, DEF_STR( 3C_1C ) )
  178.     PORT_DIPSETTING(    0x80, DEF_STR( 2C_1C ) )
  179.     PORT_DIPSETTING(    0x40, DEF_STR( 3C_2C ) )
  180.     PORT_DIPSETTING(    0x10, DEF_STR( 4C_3C ) )
  181.     PORT_DIPSETTING(    0xf0, DEF_STR( 1C_1C ) )
  182.     PORT_DIPSETTING(    0x30, DEF_STR( 3C_4C ) )
  183.     PORT_DIPSETTING(    0x70, DEF_STR( 2C_3C ) )
  184.     PORT_DIPSETTING(    0xe0, DEF_STR( 1C_2C ) )
  185.     PORT_DIPSETTING(    0x60, DEF_STR( 2C_5C ) )
  186.     PORT_DIPSETTING(    0xd0, DEF_STR( 1C_3C ) )
  187.     PORT_DIPSETTING(    0xc0, DEF_STR( 1C_4C ) )
  188.     PORT_DIPSETTING(    0xb0, DEF_STR( 1C_5C ) )
  189.     PORT_DIPSETTING(    0xa0, DEF_STR( 1C_6C ) )
  190.     PORT_DIPSETTING(    0x90, DEF_STR( 1C_7C ) )
  191.     PORT_DIPSETTING(    0x00, "Disabled" )
  192.  
  193.     PORT_START    /* DSW1 */
  194.     PORT_DIPNAME( 0x03, 0x03, DEF_STR( Lives ) )
  195.     PORT_DIPSETTING(    0x03, "3" )
  196.     PORT_DIPSETTING(    0x02, "4" )
  197.     PORT_DIPSETTING(    0x01, "5" )
  198.     PORT_DIPSETTING(    0x00, "7" )
  199.     PORT_DIPNAME( 0x04, 0x00, DEF_STR( Cabinet ) )
  200.     PORT_DIPSETTING(    0x00, DEF_STR( Upright ) )
  201.     PORT_DIPSETTING(    0x04, DEF_STR( Cocktail ) )
  202.     PORT_DIPNAME( 0x18, 0x18, DEF_STR( Bonus_Life ) )
  203.     PORT_DIPSETTING(    0x18, "20000 50000" )
  204.     PORT_DIPSETTING(    0x10, "30000 60000" )
  205.     PORT_DIPSETTING(    0x08, "30000" )
  206.     PORT_DIPSETTING(    0x00, "40000" )
  207.     PORT_DIPNAME( 0x60, 0x60, DEF_STR( Difficulty ) )
  208.     PORT_DIPSETTING(    0x60, "Easy" )
  209.     PORT_DIPSETTING(    0x40, "Medium" )
  210.     PORT_DIPSETTING(    0x20, "Hard" )
  211.     PORT_DIPSETTING(    0x00, "Hardest" )
  212.     PORT_DIPNAME( 0x80, 0x00, DEF_STR( Demo_Sounds ) )
  213.     PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
  214.     PORT_DIPSETTING(    0x00, DEF_STR( On ) )
  215. INPUT_PORTS_END
  216.  
  217.  
  218.  
  219. static struct GfxLayout charlayout =
  220. {
  221.     8,8,    /* 8*8 characters */
  222.     512,    /* 512 characters */
  223.     4,      /* 4 bits per pixel */
  224.     { 0, 1, 2, 3 }, /* the bitplanes are packed */
  225.     { 0*4, 1*4, 2*4, 3*4, 4*4, 5*4, 6*4, 7*4 },
  226.     { 0*4*8, 1*4*8, 2*4*8, 3*4*8, 4*4*8, 5*4*8, 6*4*8, 7*4*8 },
  227.     8*4*8     /* every char takes 32 consecutive bytes */
  228. };
  229.  
  230. static struct GfxLayout spritelayout =
  231. {
  232.     16,16,         /* 16*16 sprites */
  233.     256,            /* 256 sprites */
  234.     4,               /* 4 bits per pixel */
  235.     { 0, 4, 256*128*8+0, 256*128*8+4 },
  236.     { 32*8+0, 32*8+1, 32*8+2, 32*8+3, 16*8+0, 16*8+1, 16*8+2, 16*8+3,
  237.             0, 1, 2, 3, 48*8+0, 48*8+1, 48*8+2, 48*8+3 },
  238.     { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
  239.             32*16, 33*16, 34*16, 35*16, 36*16, 37*16, 38*16, 39*16 },
  240.     128*8    /* every sprite takes 64 bytes */
  241. };
  242.  
  243.  
  244. static struct GfxDecodeInfo gfxdecodeinfo[] =
  245. {
  246.     { REGION_GFX1, 0x0000, &charlayout,         0, 16*8 },
  247.     { REGION_GFX2, 0x0000, &spritelayout, 16*8*16, 16*8 },
  248.     { REGION_GFX2, 0x0001, &spritelayout, 16*8*16, 16*8 },
  249.     { -1 } /* end of array */
  250. };
  251.  
  252.  
  253.  
  254. static struct SN76496interface sn76496_interface =
  255. {
  256.     2,    /* 2 chips */
  257.     { 1789750, 3579500 },    /* 1.78975 Mhz ??? */
  258.     { 60, 60 }
  259. };
  260.  
  261.  
  262.  
  263. static struct MachineDriver machine_driver_mikie =
  264. {
  265.     /* basic machine hardware */
  266.     {
  267.         {
  268.             CPU_M6809,
  269.             1250000,        /* 1.25 Mhz */
  270.             readmem,writemem,0,0,
  271.             interrupt,1
  272.         },
  273.         {
  274.             CPU_Z80 | CPU_AUDIO_CPU,
  275.             14318180/4,    /* ? */
  276.             sound_readmem,sound_writemem,0,0,
  277.             ignore_interrupt,1    /* interrupts are triggered by the main CPU */
  278.         }
  279.     },
  280.     60, DEFAULT_60HZ_VBLANK_DURATION,    /* frames per second, vblank duration */
  281.     1,    /* 1 CPU slice per frame - interleaving is forced when a sound command is written */
  282.     0,
  283.  
  284.     /* video hardware */
  285.     32*8, 32*8, { 0*8, 32*8-1, 2*8, 30*8-1 },
  286.     gfxdecodeinfo,
  287.     256,16*8*16+16*8*16,
  288.     mikie_vh_convert_color_prom,
  289.  
  290.     VIDEO_TYPE_RASTER,
  291.     0,
  292.     generic_vh_start,
  293.     generic_vh_stop,
  294.     mikie_vh_screenrefresh,
  295.  
  296.     /* sound hardware */
  297.     0,0,0,0,
  298.     {
  299.         {
  300.             SOUND_SN76496,
  301.             &sn76496_interface
  302.         }
  303.     }
  304. };
  305.  
  306.  
  307.  
  308. /***************************************************************************
  309.  
  310.   Game driver(s)
  311.  
  312. ***************************************************************************/
  313.  
  314.  
  315. ROM_START( mikie )
  316.     ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
  317.     ROM_LOAD( "11c_n14.bin",  0x6000, 0x2000, 0xf698e6dd )
  318.     ROM_LOAD( "12a_o13.bin",  0x8000, 0x4000, 0x826e7035 )
  319.     ROM_LOAD( "12d_o17.bin",  0xc000, 0x4000, 0x161c25c8 )
  320.  
  321.     ROM_REGION( 0x10000, REGION_CPU2 )
  322.     ROM_LOAD( "06e_n10.bin",  0x0000, 0x2000, 0x2cf9d670 )
  323.  
  324.     ROM_REGION( 0x04000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  325.     ROM_LOAD( "o11",          0x00000, 0x4000, 0x3c82aaf3 )
  326.  
  327.     ROM_REGION( 0x10000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  328.     ROM_LOAD( "001",          0x00000, 0x4000, 0xa2ba0df5 )
  329.     ROM_LOAD( "003",          0x04000, 0x4000, 0x9775ab32 )
  330.     ROM_LOAD( "005",          0x08000, 0x4000, 0xba44aeef )
  331.     ROM_LOAD( "007",          0x0c000, 0x4000, 0x31afc153 )
  332.  
  333.     ROM_REGION( 0x0500, REGION_PROMS )
  334.     ROM_LOAD( "01i_d19.bin",  0x0000, 0x0100, 0x8b83e7cf )    /* red component */
  335.     ROM_LOAD( "03i_d21.bin",  0x0100, 0x0100, 0x3556304a )    /* green component */
  336.     ROM_LOAD( "02i_d20.bin",  0x0200, 0x0100, 0x676a0669 )    /* blue component */
  337.     ROM_LOAD( "12h_d22.bin",  0x0300, 0x0100, 0x872be05c )    /* character lookup table */
  338.     ROM_LOAD( "f09_d18.bin",  0x0400, 0x0100, 0x7396b374 )    /* sprite lookup table */
  339. ROM_END
  340.  
  341. ROM_START( mikiej )
  342.     ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
  343.     ROM_LOAD( "11c_n14.bin",  0x6000, 0x2000, 0xf698e6dd )
  344.     ROM_LOAD( "12a_o13.bin",  0x8000, 0x4000, 0x826e7035 )
  345.     ROM_LOAD( "12d_o17.bin",  0xc000, 0x4000, 0x161c25c8 )
  346.  
  347.     ROM_REGION( 0x10000, REGION_CPU2 )
  348.     ROM_LOAD( "06e_n10.bin",  0x0000, 0x2000, 0x2cf9d670 )
  349.  
  350.     ROM_REGION( 0x04000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  351.     ROM_LOAD( "08i_q11.bin",  0x00000, 0x4000, 0xc48b269b )
  352.  
  353.     ROM_REGION( 0x10000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  354.     ROM_LOAD( "f01_q01.bin",  0x00000, 0x4000, 0x31551987 )
  355.     ROM_LOAD( "f03_q03.bin",  0x04000, 0x4000, 0x34414df0 )
  356.     ROM_LOAD( "h01_q05.bin",  0x08000, 0x4000, 0xf9e1ebb1 )
  357.     ROM_LOAD( "h03_q07.bin",  0x0c000, 0x4000, 0x15dc093b )
  358.  
  359.     ROM_REGION( 0x0500, REGION_PROMS )
  360.     ROM_LOAD( "01i_d19.bin",  0x0000, 0x0100, 0x8b83e7cf )    /* red component */
  361.     ROM_LOAD( "03i_d21.bin",  0x0100, 0x0100, 0x3556304a )    /* green component */
  362.     ROM_LOAD( "02i_d20.bin",  0x0200, 0x0100, 0x676a0669 )    /* blue component */
  363.     ROM_LOAD( "12h_d22.bin",  0x0300, 0x0100, 0x872be05c )    /* character lookup table */
  364.     ROM_LOAD( "f09_d18.bin",  0x0400, 0x0100, 0x7396b374 )    /* sprite lookup table */
  365. ROM_END
  366.  
  367. ROM_START( mikiehs )
  368.     ROM_REGION( 0x10000, REGION_CPU1 )     /* 64k for code */
  369.     ROM_LOAD( "11c_l14.bin",  0x6000, 0x2000, 0x633f3a6d )
  370.     ROM_LOAD( "12a_m13.bin",  0x8000, 0x4000, 0x9c42d715 )
  371.     ROM_LOAD( "12d_m17.bin",  0xc000, 0x4000, 0xcb5c03c9 )
  372.  
  373.     ROM_REGION( 0x10000, REGION_CPU2 )
  374.     ROM_LOAD( "06e_h10.bin",  0x0000, 0x2000, 0x4ed887d2 )
  375.  
  376.     ROM_REGION( 0x04000, REGION_GFX1 | REGIONFLAG_DISPOSE )
  377.     ROM_LOAD( "08i_l11.bin",  0x00000, 0x4000, 0x5ba9d86b )
  378.  
  379.     ROM_REGION( 0x10000, REGION_GFX2 | REGIONFLAG_DISPOSE )
  380.     ROM_LOAD( "f01_i01.bin",  0x00000, 0x4000, 0x0c0cab5f )
  381.     ROM_LOAD( "f03_i03.bin",  0x04000, 0x4000, 0x694da32f )
  382.     ROM_LOAD( "h01_i05.bin",  0x08000, 0x4000, 0x00e357e1 )
  383.     ROM_LOAD( "h03_i07.bin",  0x0c000, 0x4000, 0xceeba6ac )
  384.  
  385.     ROM_REGION( 0x0500, REGION_PROMS )
  386.     ROM_LOAD( "01i_d19.bin",  0x0000, 0x0100, 0x8b83e7cf )    /* red component */
  387.     ROM_LOAD( "03i_d21.bin",  0x0100, 0x0100, 0x3556304a )    /* green component */
  388.     ROM_LOAD( "02i_d20.bin",  0x0200, 0x0100, 0x676a0669 )    /* blue component */
  389.     ROM_LOAD( "12h_d22.bin",  0x0300, 0x0100, 0x872be05c )    /* character lookup table */
  390.     ROM_LOAD( "f09_d18.bin",  0x0400, 0x0100, 0x7396b374 )    /* sprite lookup table */
  391. ROM_END
  392.  
  393.  
  394.  
  395. GAME( 1984, mikie,   0,     mikie, mikie, 0, ROT270, "Konami", "Mikie" )
  396. GAME( 1984, mikiej,  mikie, mikie, mikie, 0, ROT270, "Konami", "Shinnyuushain Tooru-kun" )
  397. GAME( 1984, mikiehs, mikie, mikie, mikie, 0, ROT270, "Konami", "Mikie (High School Graffiti)" )
  398.